package com.tanglon.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tanglon.domain.ResponseResult;
import com.tanglon.domain.dto.AddArticleDTO;
import com.tanglon.domain.dto.UpdateArticleDetailDTO;
import com.tanglon.domain.entity.Article;
import com.tanglon.domain.vo.PageVo;

public interface ArticleService extends IService<Article> {



    /**
     * 查询热门文章
     * @return
     */
    ResponseResult hotArticleList();

    /**
     * 分页查询文章 根据分类id
     * @param pageNum
     * @param pageSize
     * @param categoryId
     * @return
     */
    ResponseResult articleList(Integer pageNum, Integer pageSize, Long categoryId);

    /**
     * 获取文章详情
     * @param id
     * @return
     */
    ResponseResult getArticleDetail(Long id);

    /**
     * 浏览量增加
     * @param id
     * @return
     */
    ResponseResult updateViewCount(Long id);

    ResponseResult add(AddArticleDTO articleDTO);

    /**
     * 后台获取文章列表
     * @param pageNum
     * @param pageSize
     * @param title
     * @param summary
     * @return
     */
    ResponseResult<PageVo> getlist(Integer pageNum, Integer pageSize, String title, String summary);

    /**
     * 获取文章详情
     * @param id
     * @return
     */
    ResponseResult getDetail(Long id);

    /**
     * 修改文章信息
     * @param updateArticleDetailDTO
     * @return
     */
    ResponseResult updateDetail(UpdateArticleDetailDTO updateArticleDetailDTO);

    /**
     * 删除文章，逻辑删除
     * @param id
     * @return
     */
    ResponseResult deleleArticle(Long id);

    void generateTestArticlesWithSaveBatch(int count, int batchSize);
}
